<?php

namespace app\common\model;

use think\Db;
use think\Model;

/**
 * 会员模型
 */
class User2 extends Model
{

    // 表名
    protected $name = 'user';
    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    // 追加属性
    protected $append = [
        'url',
        'id_text',
        'mobile_text'
        // 'qrcode_url',
    ];
    protected $connection = 'slavedatabase';

    /**
     * 获取个人URL
     * @param string $value
     * @param array  $data
     * @return string
     */
    public function getUrlAttr($value, $data)
    {
        return "/u/" . $data['id'];
    }

    protected function getIdcardAttr($value)
    {
        return base64_encode($value);
    }
    public function getIdTextAttr($value, $data)
    {
        return intval($data['id'])+config('virtual_userid');
    }
    public function getMobileTextAttr($value, $data)
    {
        return substr($data['mobile'], 0, 3) . '****' . substr($data['mobile'], -4);
    }

    /**
     * 获取会员的组别
     */
    public function getGroupAttr($value, $data)
    {
        return UserGroup2::get($data['group_id']);
    }

    /**
     * 获取会员的二维码
     */
    // public function getQrcodeUrlAttr($value, $data)
    // {
    //     return config('upload_domain').$data['qrcode'];
    // }

    /**
     * 获取头像
     * @param string $value
     * @param array  $data
     * @return string
     */
    public function getAvatarAttr($value, $data)
    {
        // if (!$value) {
        //     //如果不需要启用首字母头像，请使用
        //     //$value = '/assets/img/avatar.png';
        //     $value = letter_avatar($data['nickname']);
        // }
        if (!strpos($data['avatar'], '://')) {
            $data['avatar'] = config('oss_domain').$data['avatar'];
        }
        return $data['avatar'];
    }

    /**
     * 获取验证字段数组值
     * @param string $value
     * @param array  $data
     * @return  object
     */
    public function getVerificationAttr($value, $data)
    {
        $value = array_filter((array)json_decode($value, true));
        $value = array_merge(['email' => 0, 'mobile' => 0], $value);
        return (object)$value;
    }

    /**
     * 设置验证字段
     * @param mixed $value
     * @return string
     */
    public function setVerificationAttr($value)
    {
        $value = is_object($value) || is_array($value) ? json_encode($value) : $value;
        return $value;
    }
}
